package com.jms.framework.context;

import com.jms.framework.aop.context.AopContext;
import com.jms.framework.beans.context.BeanContext;
import com.jms.framework.config.JmsConfig;
import com.jms.framework.aware.Aware;
import com.jms.framework.jdbc.context.JDBCContext;
import com.jms.framework.listener.context.ListenerContext;
import com.jms.framework.mvc.context.MvcContext;

public interface ApplicationContext extends Aware, Context {
    JmsConfig getJmsConfig();

    ListenerContext getListenerContext();

    BeanContext getBeanContext();

    JDBCContext getJDBCContext();

    MvcContext getMvcContext();

    AopContext getAopContext();

    Object getBean(String beanName);

    <T> T getBean(Class<T> beanClass);

    Object[] getBeans();
}
